/******************************************************************************
* PIC USB
* interrupt.c
******************************************************************************/

/** I N C L U D E S **********************************************************/
#include <p18cxxx.h>
#include "typedefs.h"
#include "interrupt.h"
#include "io_cfg.h"
#include "millis.h"

/** V A R I A B L E S ********************************************************/

/** I N T E R R U P T  V E C T O R S *****************************************/

#ifdef __DEBUG
#pragma code high_vector=0x08
#else
#pragma code high_vector=0x1008
#endif

void interrupt_at_high_vector(void)
{
    _asm goto high_isr _endasm
}
#pragma code

#ifdef __DEBUG
#pragma code low_vector=0x18
#else
#pragma code low_vector=0x1018
#endif
void interrupt_at_low_vector(void)
{
    _asm goto low_isr _endasm
}
#pragma code

/** D E C L A R A T I O N S **************************************************/
/******************************************************************************
 * Function:        void high_isr(void)
 * PreCondition:    None
 * Input:
 * Output:
 * Side Effects:
 * Overview:
 *****************************************************************************/
#pragma interrupt high_isr
void high_isr(void)
{
    static char ms100cnt=0;
    
    mLED_2_Toggle();
         if(INTCONbits.TMR0IE && INTCONbits.TMR0IF) 
     {
         runMillis();
         INTCONbits.TMR0IF=0;
         LATCbits.LATC0=1;
     }
#ifdef ENABLE_DMP_INT
     // interrupt 2 connected to Drotek IUM module
     if(INTCONbits.RBIF)
     {
     INTCONbits.RBIF=0;
     if(PORTBbits.RB5==0)
         {
         dmpDataReady();
         mLED_1=0;
         }
     }
#endif
}

/******************************************************************************
 * Function:        void low_isr(void)
 * PreCondition:    None
 * Input:
 * Output:
 * Side Effects:
 * Overview:
 *****************************************************************************/
#pragma interruptlow low_isr
void low_isr(void)
{
}
#pragma code

/** EOF interrupt.c **********************************************************/
